МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
/
Практична робота №2
на тему: Системний аналіз електронно-механічних систем
Мета: За допомогою мікроконтроллера типу ST7FLITE29, запрограмувати рух двох моторів.
Теоретичні відомості
Для аналізу функцій перш за все треба скласти їх список. Для кожної функції треба сформулювати мету, тобто, для чого необхідна дана функція в приладі чи програмі і чи можна її замінити на інші так, щоб поставлена мета досягалася більш ефективно.
Після складання списку функцій їх необхідно впорядкувати так, щоб спочатку стояли найбільш важливі функції. Реалізацію необхідно починати з найбільш важливих
Виконання роботи:
Ш
Текст програми:
ST7/
;************************************************************************
; TITLE:
; AUTHOR:
; DESCRIPTION:
;************************************************************************
TITLE "ex_spi.ASM"
MOTOROLA
#include "ST7Lite2.INC"
; Suppress the comment if you want use the Max7219.inc
#include "MAX7219.INC"
; Suppress the comment if you want use the timer
; #include "TIMER.INC"
;************************************************************************
;
; DECLARATION SYMBOLES
;
;************************************************************************
;off_time DS.B 1
;************************************************************************
;
; Ended DECLARATION SYMBOLES ZONE
;
;************************************************************************
BYTES
segment byte 'ram0'
;************************************************************************
;
; VARIABLES DECLARATION ZONE
;
;************************************************************************
; Variable for SPI data send (MASTER MODE)
SPI_data ds.b 1
var ds.b 1
delay_h ds.b 1
delay_l ds.b 1
;************************************************************************
;
; Ended DECLARATION VARIABLES ZONE
;
;************************************************************************
WORDS
segment byte 'rom'
;************************************************************************
;
; CONSTANTES DECLARATION ZONE
;
; Value unit digit (Voltage goes from 0 up to 5 Volts) table1
table1 dc.b 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
dc.b 1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2
dc.b 2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3
dc.b 3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,5
; Value dot unit digit (Voltage goes from 0.1 up to 0.9 Volts) table2
table2 dc.b 0,1,2,3,4,4,5,6,7,8,8,9,0,1,1,2
dc.b 3,4,5,5,6,7,8,8,9,0,1,2,2,3,4,5
dc.b 5,6,7,8,9,9,0,1,2,3,3,4,5,6,6,7
dc.b 8,9,0,0,1,2,3,3,4,5,6,7,7,8,9,0
;************************************************************************
;
; Ended CONSTANTES DECLARATION ZONE
;
;************************************************************************
;------------------------------------------------------------------------
;************************************************************************
;
; SUBROUTINE PROGRAM DECLARATION ZONE
;
;************************************************************************
init_ST7:
clr MCCSR ; normal mode
ret
init_ports:
ld A,#%10011011 ; Init port A with this value
ld PADDR,A ; init port A (PWM0 is in PA2)
ld PAOR,A
ld A,#%01110100
bset PBDR,#2 ; Set PB2 pin in level logic “1” load data into SPI
ld PBDDR,A ; init port B SPI clock (SCK = PB1 pin )
ld PBOR,A ; MOSI is PB3 and PB0 is for analog input
ret
;************************************************************************
;
; Ended Subroutine program declaration ZONE;
;************************************************************************
;-------------------------------------------------------------------------
; SUBROUTINE NAME: init_IO
; DESCRIPTION:
;
;---------------------------------------------------------------------...